/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package src;

import java.io.Serializable;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.Locale;

/**
 *
 * @author Viktor
 */

/*
 * 
  Toto je hlavní třída zajišťující evidenci
 * 
 */
public class Evidence implements IEvidence, Serializable {
    private int pocet;
  // transient  Collator  collator;
 private   ArrayList<Zak> zaci;
 private ArrayList<Krouzek> SeznamKrouzku;
 //private    ArrayList<Krouzek> krouzky;
   public Evidence(){ //konstr.
      zaci = new ArrayList<Zak>();
      pocet = 0;
      SeznamKrouzku = new ArrayList<Krouzek>();
   //  collator = Collator.getInstance(new Locale("cs","CZ"));
     
   }

    public ArrayList<Zak> getZaci() {
        return zaci;
    }

    public ArrayList<Krouzek> getSeznamKrouzku() {
        return SeznamKrouzku;
    }
    
   
public Zak zpristupniZaka(int index){
    return zaci.get(index);
}
    public boolean pridejDoEvidence(Zak z) {
        
        try{
            zaci.add(z);
           Collections.sort(zaci);
            
        }catch(NullPointerException e){
            return false;
        }
        pocet++;
        return true;
               
       
    }

    public boolean odeberZEvidence(Zak z) {
       if(zaci.contains(z)){
          Collections.sort(zaci);
       return zaci.remove(z);
       
       }
       else{
           return false;
       }
               
    }

    public boolean jePrazdna() {
        return zaci.isEmpty();
    }

    public boolean pridejKrouzek(Krouzek k) {
         try{
            SeznamKrouzku.add(k);
            
        }catch(NullPointerException e){
            return false;
        }
     
        return true;
    }

    public Krouzek odeberKrouzek(int index) {
        return SeznamKrouzku.remove(index);
        
    }
   
    public int getPocetDni(int month){
        switch(month){
            case 0: return 31;
            case 1: return 28;
            case 2: return 31;
            case 3: return 30;
            case 4: return 31;
            case 5: return 30;
            case 6: return 31;
            case 7: return 31;
            case 8: return 30;
            case 9: return 31;
            case 10: return 30;
            case 11: return 31;    
            case 12: return 29;    
            default : return 0;
        }
    }

    public int getPocet() {
        return pocet;
    }

  

}
